﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;
namespace t4_se
{
    public partial class ChuyenBay : Form
    {
        public List<ChuyenBay_DTO> ds = ChuyenBay_BUS.layDanhSachChuyenBay();
        public ChuyenBay()
        {
            InitializeComponent();
        }
        public void HienThi(List<ChuyenBay_DTO> ds)
        {
            //Hiển thị danh sách các chuyến bay
            dataGridView1.Rows.Clear();
            
            for (int i = 0; i < ds.Count; i++)
                dataGridView1.Rows.Add(ds[i].maCB, ds[i].sbDi, ds[i].sbDen, ds[i].sanBayTrungGian, ds[i].gioDi, ds[i].gioDen, ds[i].thoiGianDung, ds[i].soGheHang1, ds[i].soGheHang2, ds[i].giaHang1, ds[i].giaHang2 );
        }
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.textBox1.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng điền một mã chuyến bay vào!");
            ChuyenBay_DTO chuyenBay = new ChuyenBay_DTO();
            chuyenBay.maCB = textBox1.Text;
            chuyenBay.sbDi = comboBox1.Text.ToString();
            chuyenBay.sbDen = comboBox3.Text.ToString();
            chuyenBay.sanBayTrungGian = comboBox4.Text.ToString();
            chuyenBay.soGheHang1 = int.Parse(soGhe1.Value.ToString());
            chuyenBay.soGheHang2 = int.Parse(soGhe2.Value.ToString());
            chuyenBay.giaHang1 = int.Parse(giaGhe1.Value.ToString());
            chuyenBay.giaHang2 = int.Parse(giaGhe2.Value.ToString());
            chuyenBay.gioDen = int.Parse(this.hDen.Value.ToString()) + ":" + int.Parse(phutDen.Value.ToString());
            chuyenBay.gioDi = int.Parse(hDi.Value.ToString()) + ":" + int.Parse(phutDi.Value.ToString());
            chuyenBay.thoiGianDung = int.Parse(tgianDung.Value.ToString());

            int result = ChuyenBay_BUS.themChuyenbay(chuyenBay);
            if (result == 2)
                MessageBox.Show("Xin lỗi, đã tồn tại sân bay này.", "Xin vui lòng chọn một sân bay khác.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            if (result == 1)
                MessageBox.Show("Đã thêm thành công!");
            if (result == 0)
                MessageBox.Show("Thất bại!", "Xin bạ vui lòng thử lại hoặc chọn một chuyến bay khác.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            HienThi(ds);
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            String sbDi = comboBox1.Text.ToString();
            ds = ChuyenBay_BUS.layChuyenBayTheoSanBayDi(sbDi);
            HienThi(ds);
        }

        private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
        {
            String sbtGian = comboBox3.Text.ToString();
            ds = ChuyenBay_BUS.layChuyenBayTheoSanBayTGian(sbtGian);
            HienThi(ds);
        }

        private void comboBox4_SelectedIndexChanged(object sender, EventArgs e)
        {
            String sbDen = comboBox4.Text.ToString();
            ds = ChuyenBay_BUS.layChuyenBayTheoSanBayDen(sbDen);
            HienThi(ds);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (dataGridView1.CurrentRow != null)
            {
                String maCB = dataGridView1.CurrentRow.Cells["Mã chuyến bay"].Value.ToString();

                DialogResult dr = MessageBox.Show("Bạn có muốn xóa chuyến bay\"" + maCB + "\"?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning );
                if (dr == System.Windows.Forms.DialogResult.Yes)
                {
                    bool result = ChuyenBay_BUS.xoaChuyenBay(maCB);
                    if (result == false)
                        MessageBox.Show("Xin lỗi, chúng tôi không thể xóa chuyến bay này!!!", "Xin vui lòng chọn một chuyến bay khác.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    MessageBox.Show("Đã xóa thành công!");
                    ds = ChuyenBay_BUS.layDanhSachChuyenBay();
                    HienThi(ds);

                }
            }
            else MessageBox.Show("Xin vui lòng chọn một chuyến bay!");
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (this.textBox1.Text.Trim() == "")
                MessageBox.Show("Xin vui lòng điền một mã chuyến bay vào!");
            ChuyenBay_DTO chuyenBay = new ChuyenBay_DTO();
            chuyenBay.maCB = textBox1.Text;
            chuyenBay.sbDi = comboBox1.Text.ToString();
            chuyenBay.sbDen = comboBox3.Text.ToString();
            chuyenBay.sanBayTrungGian = comboBox4.Text.ToString();
            chuyenBay.soGheHang1 = int.Parse(soGhe1.Value.ToString());
            chuyenBay.soGheHang2 = int.Parse(soGhe2.Value.ToString());
            chuyenBay.giaHang1 = int.Parse(giaGhe1.Value.ToString());
            chuyenBay.giaHang2 = int.Parse(giaGhe2.Value.ToString());
            chuyenBay.gioDen = int.Parse(this.hDen.Value.ToString()) + ":" + int.Parse(phutDen.Value.ToString());
            chuyenBay.gioDi = int.Parse(hDi.Value.ToString()) + ":" + int.Parse(phutDi.Value.ToString());
            chuyenBay.thoiGianDung = int.Parse(tgianDung.Value.ToString());

            DialogResult dr = MessageBox.Show("Bạn có chắc muốn sửa thông tin chuyên sbay này", "?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (dr == DialogResult.Yes)
            {
                bool result = ChuyenBay_BUS.suaChuyenBay(chuyenBay);
                if (result == true)
                {
                    MessageBox.Show("Đã sửa thành công.");
                }
                MessageBox.Show("Thất bại!", "Xin bạn vui lòng kiểm tra lại thông tin hoặc thử với một chuyến bay khác.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                ds = ChuyenBay_BUS.layDanhSachChuyenBay();
                HienThi(ds);
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }

        private void button5_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            Application.Restart();
        }
    }
}
